<?php
/**
 *启明星应用平台核心文件
 *@author oisc
 *2014/8/14
 */

defined('IN_QMX') or exit('Access Denied');

/*----------一些初始化-------*/
date_default_timezone_set('Asia/Shanghai');
// error_reporting(2);

/*------------定义系统常量---------*/

/*
 *ENV代表当前的开发环境
 *不同ENV会加载不同的配置文件
 *如prod环境下会加载prod.config.php配置文件
 */
defined('ENV') or define('ENV','prod');
define('DS', DIRECTORY_SEPARATOR);	//路径分隔符
define('INCLUDE_PATH', dirname(__FILE__));	//包含库路径
define('CORE_PATH', INCLUDE_PATH.DS.'core');
define('VENDOR_PATH', INCLUDE_PATH.DS.'vendor');
defined('CONFIG_PATH') or define('CONFIG_PATH', INCLUDE_PATH.DS.'conf'); //配置文件路径
defined('PLUGIN_PATH') or define('PLUGIN_PATH', INCLUDE_PATH.DS.'plugin');

//根路径 默认为入口文件
defined('ROOT_PATH') or define('ROOT_PATH', dirname($_SERVER['SCRIPT_FILENAME']));
defined('APP_PATH') or define('APP_PATH', ROOT_PATH.DS.'app');
defined('TPL_PATH') or define('TPL_PATH', ROOT_PATH.DS.'tpl');
defined('STATIC_PATH') or define('STATIC_PATH', ROOT_PATH.DS.'static');

/*------------载入系统函数---------*/
require INCLUDE_PATH.DS.'core'.DS.'function.php';

/*------------载入系统配置---------*/
C('env', include(CONFIG_PATH.DS.ENV.'.config.php'));

/*------------载入第三方库---------*/

/*
 *Smarty
 *全局公用一个smarty实例
 *修改了smarty的限定符和关掉了缓存
 */

require VENDOR_PATH.DS.'Smarty'.DS.'Smarty.class.php';
$smarty = new Smarty();
//修改 smarty 缺省的 {}
$smarty->left_delimiter  = '{{';
$smarty->right_delimiter = '}}';
//关掉smarty缓存
$smarty->setCaching(Smarty::CACHING_OFF);
$smarty->setCacheLifetime(0);
//设置默认模板路径
$smarty->setTemplateDir(TPL_PATH);

/*
 *UCenter
 *使用ucenter需要定义一些常量
 *ucenter比较特殊 会造成一定的污染
 */
// UC 相关配置
define('UC_CONNECT', C('env.uc.connect'));
define('UC_DBHOST', C('env.uc.dnhost'));
define('UC_DBUSER', C('env.uc.dbuser'));
define('UC_DBPW', C('env.uc.dbpw'));
define('UC_DBNAME', C('env.uc.name'));
define('UC_DBCHARSET', C('env.uc.dbcharset'));
define('UC_DBTABLEPRE', C('env.uc.dbtablepre'));
define('UC_DBCONNECT', C('env.uc.dbconect'));
define('UC_IP', C('env.uc.ip'));
define('UC_CHARSET', C('env.uc.charset'));
//UC_KEY非常重要 请不要泄露出去
define('UC_KEY', C('env.uc.key'));
define('UC_API', C('env.uc.api'));
define('UC_APPID', C('env.uc.appid'));
define('UC_PPP', C('env.uc.ppp'));
require VENDOR_PATH.DS.'uc_client'.DS.'client.php';

/*-----------注册autoloader--------*/

spl_autoload_register('dynamic_load');
//添加系统的两个加载路径
dynamic_load(INCLUDE_PATH.DS.'core', true);
dynamic_load(INCLUDE_PATH.DS.'model', true);

//加载插件
Hook::load_plugin();